package cn.mujiankeji.mbrowser.功能.下载.模型

import java.util.ArrayList
import java.util.Date

/**
 * 下载任务的数据模型
 */
data class 下载任务(
    val id: String,                  // 任务唯一标识符
    val url: String,                 // 下载地址
    val 目标文件夹: String,              // 保存路径
    val 文件名: String,                // 文件名
    val 文件大小: Long = 0,            // 总文件大小 (字节)
    val 已下载大小: Long = 0,           // 已下载大小 (字节)
    val 状态: 下载状态 = 下载状态.等待中,  // 当前状态
    val 创建时间: Date = Date(),        // 任务创建时间
    val 完成时间: Date? = null,         // 下载完成时间
    val 引擎类型: 下载引擎类型,           // 使用的下载引擎
    val 请求头: Map<String, String> = emptyMap(),  // HTTP 请求头
    val UserAgent: String? = null,     // 特定User-Agent
    val 类型: 下载类型 = 下载类型.普通,      // 下载类型（普通、M3U8等）
    val 优先级: Int = 0,               // 下载任务优先级
    val 错误信息: String? = null,         // 最后一次错误信息

    var 分块大小 : Int = 0, // 元数据 -- 分块大小
    var 分块数量 : Int = 0,
    var 分块状态 : Array<下载任务分块状态> ?=null,
    val 重试次数: Int = 0,               // 当前重试次数

)


enum class 下载任务分块状态{
    未开始,
    下载中,
    完成,
    失败
}